package yl.hs.bmipfull.service.system;

import yl.hs.bmipfull.pojo.system.SysFileEntity;
import yl.hs.bmipfull.service.IBaseService;
import yl.hs.bmipfull.viewmodels.PageQuery;
import yl.hs.bmipfull.viewmodels.PageResult;

import java.util.List;
import java.util.Map;

/**
 * @author 张凯
 * @apiNote 文件信息管理 -IService
 * @since 2022/1/21 8:57 上午 创建
 */

public interface IFileService  extends IBaseService {


    /**
     * 查询系统文件信息
     * @param pageQuery 查询条件 {@link PageQuery}
     * @return 系统文件信息-List<{@link SysFileEntity}>
     * @throws Exception 查询参数异常
     */
    List<SysFileEntity> queryList(PageQuery pageQuery)throws Exception;
    /**
     * 查询系统文件信息
     * @param pageQuery 查询条件 {@link PageQuery}
     * @param rowNum 每页条数
     * @param page 页码
     * @return 系统文件分页信息-PageResult<{@link SysFileEntity}>
     * @throws Exception 查询条件异常
     */
    PageResult<SysFileEntity> queryPage(PageQuery pageQuery, int rowNum, int page) throws Exception;



    /**
     * 根据系统文件编号查询系统文件信息
     * @param sn 编号
     * @return 系统文件-{@link SysFileEntity}
     */
    SysFileEntity findBySn(String sn);

    /**
     * 保存系统文件信息
     * @param model 系统文件表单信息
     * @param sn 系统文件信息原有编号
     * @return 执行结果-受影响行数-Integer
     * @throws Exception 保存异常
     */
    Integer saveSysFile(Map<String, Object> model, String sn)throws Exception;

    /**
     * 保存文件信息并返回sn
     * @param sysFile 文件信息
     * @return 文件sn
     */
    String save(SysFileEntity sysFile);

    /**
     * 删除文件信息
     * @param sn 文件sn
     * @return 执行结果
     */
    boolean delete(String sn);
}
